1. Technical Field
The present invention relates to an interface device, a host device including an interface device, a slave device including an interface device, a communications system including a plurality of communication devices each of which includes an interface device, and a communication method used in the communications system.
2. Background Art
Recent advances toward miniaturization and higher speed of semiconductors have increased the amount of data transmitted between devices or between large-scale integrated (LSI) circuits used in the devices. The communication speed of the devices or circuits is accordingly required to be higher. However, the number of terminals (pads) of an LSI, which affects the die size (chip area) and can increase the cost per chip (LSI), is limited severely.
To enable high-speed data communication using less LSI terminals, many communications systems employ high-speed serial communication standards, such as USB2.0, IEEE1394, and PCI Express. Communications complying with these standards include half-duplex communication and full-duplex communication. Half-duplex communication, which complies with, for example, USB2.0 or IEEE1394, requires control over the communication direction, or the transmission or reception direction, and also over the arbitration of transmission rights. Full-duplex communication, which complies with, for example, PCI Express, allows transmission and reception to be performed simultaneously using at least one transmission channel dedicated to the transmission and at least one transmission channel dedicated to the reception. In typical cases, full-duplex communication requires easier control than half-duplex communication. The problem is, however, that full-duplex communication can be less efficient when, for example, communication is performed in one direction, or more specifically when either only transmission or only reception is performed. During such one-way communication, the transmission channel for the other direction is left unused. In this manner, full-duplex communication can waste the bandwidth of the unused transmission channel.
In other technical fields including, for example, storage media used in digital still cameras and mobile telephones, non-volatile storage devices like semiconductor memory cards are in high demand, and such storage media tend to have increasingly larger capacities. The non-volatile storage device includes a flash memory, which is a non-volatile memory, a flash memory read/write control unit for controlling the flash memory, and an interface circuit via which communication with a host device, such as a digital camera or a personal computer, is performed. Via the interface circuit, the non-volatile storage device functions as a slave device that is controllable by the host device.
The amount of data transmitted between these devices has increased rapidly as, for example, digital still cameras tend to have more pixels and higher image quality. Further, single-reflex digital still cameras with high-speed continuous shooting function are also strongly required to increase their data communication speed.
Another example of the slave device is a network interface device, the use of which adds the network function to the host device. As the communication speed of the network increases, the host device and the slave device are strongly required to transmit data between them at a higher speed.
The slave device, which can be the non-volatile storage device or the network interface device, and the host device are connected to each other with a plurality of transmission channels. When, for example, the slave device is a non-volatile storage device, the transmission channels will carry digital signals representing commands and messages that are transmitted from the host device to the non-volatile storage device and digital signals representing data that has been read from the non-volatile memory or data to be written to the non-volatile memory.
When the slave device and the host device are connected to each other via two transmission channels, one transmission channel is used as a channel (a downlink channel) from the host device to the non-volatile storage device (an example of the slave device) and the other transmission channel is used as a channel (an uplink channel) from the non-volatile storage device to the host device. In full-duplex communication, both the host device and the non-volatile storage device can transmit commands or data simultaneously.
In half-duplex communication, the two transmission channels are both used as a channel (a downlink channel) from the host device to the non-volatile storage device or as a channel (an uplink channel) from the non-volatile storage device to the host device. When one device is transmitting signals using half-duplex communication, the other device can only receive but cannot transmit any signals. The communication bandwidth per direction of half-duplex communication, either downlink or uplink, is twice as large as that of full-duplex communication. Half-duplex communication is therefore advantageous when transmitting a large amount of data at a high speed in the same direction.
Half-duplex communication can be particularly advantageous for certain recording media. For example, high-speed data writing and high-speed data reading rarely occur simultaneously in non-volatile storage devices, typical examples of which are semiconductor memory cards. In most applications, only high-speed writing or only high-speed reading is performed continuously in the non-volatile storage devices. For such non-volatile storage devices, the use of half-duplex communication during the period of data transfer (during data writing or data reading) increases efficiency.
Techniques known in the art may enable efficient use of the limited bandwidth of these transmission channels (see, for example, Patent Citation 1). With such conventional techniques, half-duplex communication is performed using all the transmission channels during the period of communication performed only in one direction, or the direction of either transmission or reception. The communication mode is switched to a half-duplex communication mode by switching the direction of transmission channels used for full-duplex communication.
A conventional communications system that can switch between a full-duplex mode and a half-duplex mode will now be described with reference to FIGS. 11A and 11B.
FIGS. 11A and 11B are timing charts showing a command and data that are transmitted and received on a first transmission channel and a second transmission channel (showing a command and data transferred on external transmission channels in chorological order) in the communications system that can switch between the full-duplex mode and the half-duplex mode. The communications system includes a host device and a non-volatile storage device that are connected to each other via the two external transmission channels. More specifically, FIG. 11A is a timing chart of when the host device reads data from the non-volatile storage device in the half-duplex mode, whereas FIG. 11B is a timing chart of when data is written to the non-volatile storage device.
As shown in FIGS. 11A and 11B, the external transmission channels consist of the first and second transmission channels 1101 and 1102. In the initial status, the first transmission channel 1101 is set as a downlink channel, whereas the second transmission channel 1102 is set as an uplink channel. Clocks are provided from the host device to the non-volatile storage device via a clock transmission channel (not shown).
To meet the requirements for compactness and low cost, a non-volatile storage device, which is a typical example of a slave device, is preferably driven using clocks provided from the host device instead of having internal clocks (instead of generating clocks internally).
In FIG. 11A, the host device transmits a high-speed read command (1111) to instruct the non-volatile storage device to read data in the half-duplex mode. The high-speed read command includes an address at which data is to be read and the size of data to be read, which are multiplexed in the command.
After transmitting the high-speed read command, the host device sets an input/output terminal of the first transmission channel 1101 for the host device to an input status. The non-volatile storage device receives the high-speed read command, and sets an input/output terminal of the first transmission channel 1101 for the non-volatile storage device to an output status. This sets the first transmission channel 1101 to an uplink channel (1112).
Subsequently, the non-volatile storage device reads data having the size multiplexed in the high-speed read command from the address multiplexed in the command, and transmits the data on the first transmission channel 1101 and the second transmission channel 1102 in parallel (1113).
After transmitting and receiving the predetermined size of data, the non-volatile storage device sets the input/output terminal of the first transmission channel 1101 for the non-volatile storage device to an input status and the host device sets the input/output terminal of the first transmission channel 1101 for the host device to an output status. This returns the first transmission channel 1101 to a downlink channel (1114).
In FIG. 11B, the host device transmits a high-speed write command (1115) to instruct the non-volatile storage device to write data in the half-duplex mode. The high-speed write command includes an address at which data is to be written and the size of data to be written, which are multiplexed in the command.
After transmitting the high-speed write command, the host device sets an input/output terminal of the second transmission channel 1102 for the host device to an output status. The non-volatile storage device receives the high-speed write command, and sets an input/output terminal of the second transmission channel 1102 for the non-volatile storage device to an input status. This sets the second transmission channel 1102 to a downlink channel (1116).
Subsequently, the host device reads data having the size multiplexed in the high-speed write command from the address multiplexed in the command, and transmits the data on the first transmission channel 1101 and the second transmission channel 1102 in parallel (1117).
After completing transmission and reception of the predetermined size of data, the host device sets the input/output terminal of the second transmission channel 1102 for the host device to an input status and the non-volatile storage device sets the input/output terminal of the second transmission channel 1102 for the non-volatile storage device to an output status. This returns the second transmission channel 1102 to an uplink channel (1118).
In the manner described above, the conventional communications system, which can switch between the full-duplex mode and the half-duplex mode, enables efficient communication by switching its communication mode between the full-duplex mode and the half-duplex mode.